#pragma once
#include <iostream>
#include <vector>
#include <string>
#include<ctime>
typedef void(*task_t)();
void PrintLog()
{
    std::cout<<"我是一个打印日志的任务"<<std::endl;
}
void DownLoad()
{
    std::cout<<"我是一个下载的任务"<<std::endl;
}
void Upload()
{
    std::cout<<"我是一个上传的任务"<<std::endl;
}
////////////////////////////////////////////////////////////////////////
class TaskManager
{
public:
    TaskManager()//管理任务的类
    {
        srand(time(NULL));//随机数种子
    }
    void  Register(task_t t)
    {
        _tasks.push_back(t);
    }
    int Code()
    {
        return rand()%_tasks.size();//随机返回一个任务码
    }
    void Execute(int code)
    {
        if(code>=0&&code<_tasks.size())
        {
            _tasks[code]();//使用函数指针的方式进行调用操作
        }
    }
    ~TaskManager()
    {}
    
private:
    std::vector<task_t> _tasks;//任务队列

};